package com.liuzhou.dao;

import java.sql.SQLException;
import java.util.List;

import com.liuzhou.model.Subtask;

/**
 * 
 * @author simon
 *
 */

public interface SubTaskDao {
	/**
	 * 根据父事项的Id查找父事项所属的所有子任务
	 * @param itemId 父事项Id
	 * @return 查找到的子事务列表
	 */
	public List<Subtask> queryByItemId(Integer itemId)throws SQLException;
	
	/**
	 * 根据子任务Id查找子任务
	 * @param subId 子任务Id
	 * @return
	 */
	public Subtask queryBySubtaskId(Integer subId)throws SQLException;
	
	/**
	 * 为父事项新增子事务
	 * @param itemId 父事项Id
	 * @param name  子任务名称
	 * @param detail 子任务详情
	 * @return 是否成功添加
	 */
	public void addSubtask(Integer itemId,String name, String detail)throws SQLException;
	
	
	/**
	 * 根据子任务 Id 删除子任务
	 * @param subId 需要删除的子任务的 Id
	 * @return 删除的子任务对象
	 */
	public void deleteSubtaskById(Integer subId)throws SQLException;
	
	/**
	 * 查询子任务的总数
	 * @return 子任务的总数
	 * @throws SQLException
	 */
	public Integer countNum()throws SQLException;

	/**
	 * 查询所有的子任务
	 * @param pageNum
	 * @param pageRow
	 * @return
	 * @throws SQLException
	 */
	public List<Subtask> queryAll(Integer pageNum, Integer pageRow)throws SQLException;
		
	/**
	 * 更新子任务
	 * @param id 子任务Id
	 * @param item_id 子任务的父事项的Id
	 * @param name 子任务的名称
	 * @param task_detail 子任务的任务详情
	 * @throws SQLException
	 */
	public void update(Integer id,Integer item_id,String name,String task_detail) throws SQLException;
}
